namespace = cr_adultery

# Keeps religion-dependent adultery and bastard status synchronized after
# birth, adulthood, conversion, or scripted character generation.
character_event = {
	id = cr_adultery.1
	hide_window = yes
	is_triggered_only = yes

	immediate = {
		if = {
			limit = {
				trait = bastard
				cr_adultery_celebrated_religion_trigger = yes
			}
			remove_character_modifier = cr_jewish_bastard_stigma
			if = {
				limit = { NOT = { has_character_modifier = cr_celebrated_bastard } }
				add_character_modifier = { name = cr_celebrated_bastard duration = -1 }
			}
		}
		if = {
			limit = {
				trait = bastard
				cr_adultery_condemned_religion_trigger = yes
			}
			remove_character_modifier = cr_celebrated_bastard
			if = {
				limit = { NOT = { has_character_modifier = cr_jewish_bastard_stigma } }
				add_character_modifier = { name = cr_jewish_bastard_stigma duration = -1 }
			}
		}
		if = {
			limit = { NOT = { trait = bastard } }
			remove_character_modifier = cr_celebrated_bastard
			remove_character_modifier = cr_jewish_bastard_stigma
		}

		# A few untouched vanilla event files apply the legacy adultery modifiers
		# directly. Convert those neutral compatibility markers into CR status.
		if = {
			limit = {
				has_character_modifier = adulterer
				cr_adultery_celebrated_religion_trigger = yes
			}
			remove_character_modifier = adulterer
			remove_character_modifier = cr_jewish_adulterer
			add_character_modifier = { name = cr_celebrated_adulterer years = 10 }
		}
		if = {
			limit = {
				has_character_modifier = adulteress
				cr_adultery_celebrated_religion_trigger = yes
			}
			remove_character_modifier = adulteress
			remove_character_modifier = cr_jewish_adulteress
			add_character_modifier = { name = cr_celebrated_adulteress years = 10 }
		}
		if = {
			limit = {
				has_character_modifier = adulterer
				cr_adultery_condemned_religion_trigger = yes
			}
			remove_character_modifier = adulterer
			remove_character_modifier = cr_celebrated_adulterer
			add_character_modifier = { name = cr_jewish_adulterer years = 10 }
		}
		if = {
			limit = {
				has_character_modifier = adulteress
				cr_adultery_condemned_religion_trigger = yes
			}
			remove_character_modifier = adulteress
			remove_character_modifier = cr_celebrated_adulteress
			add_character_modifier = { name = cr_jewish_adulteress years = 10 }
		}

		if = {
			limit = {
				cr_adultery_celebrated_religion_trigger = yes
				has_character_modifier = cr_jewish_adulterer
			}
			remove_character_modifier = cr_jewish_adulterer
			add_character_modifier = { name = cr_celebrated_adulterer years = 10 }
		}
		if = {
			limit = {
				cr_adultery_celebrated_religion_trigger = yes
				has_character_modifier = cr_jewish_adulteress
			}
			remove_character_modifier = cr_jewish_adulteress
			add_character_modifier = { name = cr_celebrated_adulteress years = 10 }
		}
		if = {
			limit = {
				cr_adultery_condemned_religion_trigger = yes
				has_character_modifier = cr_celebrated_adulterer
			}
			remove_character_modifier = cr_celebrated_adulterer
			add_character_modifier = { name = cr_jewish_adulterer years = 10 }
		}
		if = {
			limit = {
				cr_adultery_condemned_religion_trigger = yes
				has_character_modifier = cr_celebrated_adulteress
			}
			remove_character_modifier = cr_celebrated_adulteress
			add_character_modifier = { name = cr_jewish_adulteress years = 10 }
		}
	}
}
